/**
 * Created by xiuge on 2017/3/22.
 */
layui.use(['layer', 'datatable', ], function () {
    var $ = layui.jquery,
        layer = layui.layer;
    // oSort是排序类型数组, 'chinese-asc'是自己定义的类型的排序(*-asc || *-desc)名称
    // 插件应该会根据表格中的内容的类型(string, number, chinese)进行比较排序，
    // 如果以chinese类型来排序则用oSort['chinese-asc']和oSort['chinese-desc']的方法
    // oSort对应的function里面自定义比较方法
    $.fn.dataTableExt.oSort['chinese-asc'] = function (x, y) {
        //javascript自带的中文比较函数，具体用法可自行查阅了解
        return x.localeCompare(y);
    };

    $.fn.dataTableExt.oSort['chinese-desc'] = function (x, y) {
        return y.localeCompare(x);
    };
    // aTypes是插件存放表格内容类型的数组
    // reg赋值的正则表达式，用来判断是否是中文字符
    // 返回值push到aTypes数组，排序时扫描该数组，'chinese'则调用上面两个方法。返回null默认是'string'
    $.fn.dataTableExt.aTypes.push(
        function (sData) {
            var reg = /^[\u4e00-\u9fa5]{0,}$/;
            if (reg.test(sData)) {
                return 'chinese';
            }
            return null;
        }
    );
});

/**
 * 显示异常列表表格
 */
function displayExceptionRecords() {
    var type = $("input[name='exceptionType']:checked").val();
    if (type == 5)
        type = null;
    var myTable = $('#exceptionTable').DataTable({
        "destroy": true,
        "processing": false, //DataTables载入数据时，是否显示‘进度’提示
        "stateSave": true, //是否打开客户端状态记录功能,此功能在ajax刷新纪录的时候不会将个性化设定回复为初始化状态
        "scrollCollapse": true, //是否开启DataTables的高度自适应，当数据条数不够分页数据条数的时候，插件高度是否随数据条数而改变
        "paginationType": "full_numbers", //详细分页组，可以支持直接跳转到某页
        "language": lang, //提示信息
        "autoWidth": false, //自适应宽度，
        "lengthMenu": [15, 30, 50],
        "stripeClasses": ["odd", "even"], //为奇偶行加上样式，兼容不支持CSS伪类的场合
        "searching": false, //是否允许Datatables开启本地搜索
        "paging": true, //是否开启本地分页
        "lengthChange": false, //是否允许产品改变表格每页显示的记录数
        "info": false, //控制是否显示表格左下角的信息
        //跟数组下标一样，第一列从0开始，这里表格初始化时，第四列默认降序
        "order": [], //asc升序   desc降序
        "aoColumnDefs": [{
            "orderable": false,
            "aTargets": [0, 1, 2, 3] // 指定列不参与排序
        }],
        "deferRender": true, //延迟渲染
        //"ajax":"json/device.json",
        "ajax": {
            url: url + '/ic-iot/devices/' + deviceId + '/exceptions',//117
            type: 'get',
            data: {
                "currentPage": 1,
                "pageSize": 99999,
                "exceptionType": type,
            },
            dataType: 'json',
            beforeSend: function(request) {
	            request.setRequestHeader("accessToken", accessToken);
	        },
            success: function (data) {
                if(data['code'] == 1){                    
                	$('#exceptionTable').dataTable().fnAddData(data.result);
				}else{
					ifajax(data);
				}
            }
        }, //数据的路径 "http://192.168.5.133:8081/ic-iot/admin/1/devices" /"json/device.json"
        select: { //单击tr选中当前行
            style: 'multi'
        },
        "columns": [{
            "data": "deviceName",
            "sTitle": "设备名称", //标题
            "sType": 'chinese',
            "sDefaultContent": "", //此列默认值为""，以防数据中没有此值，DataTables加载数据的时候报错
        }, {
            "data": function (obj) {
                if (obj.exceptionType == 0) {
                    return '<u class="btn-showuser" style="color:#fad60d">' + '故障' + '</u>';
                } else if (obj.exceptionType == 1) {
                    return '<u class="btn-showuser" style="color:red">' + '超限' + '</u>';
                } else if (obj.exceptionType == 3) {
                    return '<u class="btn-showuser" style="color:#999">' + '离线' + '</u>';
                }
            },
            "sTitle": "异常类型", //标题
            "sType": 'chinese',
            "sDefaultContent": "", //此列默认值为""，以防数据中没有此值，DataTables加载数据的时候报错
        }, {
            "data": "detailTypeInfo",
            "sTitle": "报警原因", //标题
            "sType": 'chinese',
            "sDefaultContent": "", //此列默认值为""，以防数据中没有此值，DataTables加载数据的时候报错
        }, {
            "data": "startInfo",
            "sTitle": "开始时间", //标题
            "sDefaultContent": "", //此列默认值为""，以防数据中没有此值，DataTables加载数据的时候报错
        }, {
             "data": function (obj) {
                if (obj.endInfo == null||obj.endInfo=="") {
                    return '未结束';
                }else {
                    return obj.endInfo;
                }
            },
        }]
    });
};

/**
 * 显示历史记录列表表格
 */
function disPlayHistoryRecords() {
    var start = $("#start").val();
    var end = $("#end").val();
    if (!(start && end)) {
        $("#start").val("");
        $("#end").val("");
        start = getNowDate();
        end = getNowDate();
    }
    var myTable = $('#recordTable').DataTable({
        //开启服务器模式
        "serverSide": true,
        "destroy": true,
        "processing": false, //DataTables载入数据时，是否显示‘进度’提示
        //"stateSave": true, //是否打开客户端状态记录功能,此功能在ajax刷新纪录的时候不会将个性化设定回复为初始化状态
        "scrollCollapse": true, //是否开启DataTables的高度自适应，当数据条数不够分页数据条数的时候，插件高度是否随数据条数而改变
        //"paginationType": "full_numbers", //详细分页组，可以支持直接跳转到某页
        "language": lang, //提示信息
        "autoWidth": false, //自适应宽度，
        "lengthMenu": [30, 50,100],
        "stripeClasses": ["odd", "even"], //为奇偶行加上样式，兼容不支持CSS伪类的场合
        "searching": false, //是否允许Datatables开启本地搜索
        "paging": true, //是否开启本地分页
        "lengthChange": false, //是否允许产品改变表格每页显示的记录数
        "info": false, //控制是否显示表格左下角的信息
        //跟数组下标一样，第一列从0开始，这里表格初始化时，第四列默认降序
        "order": [0, 'desc'], //asc升序   desc降序
        "aoColumnDefs": [{
            "orderable": false,
            "aTargets": [1, 2, 3, 4] // 指定列不参与排序
        }],

        //"deferRender": true, //延迟渲染
        //"ajax":"json/device.json",
        "ajax": {
            url: url + '/ic-iot/device/' + deviceId + '/records/history',//117
            type: 'get',
            data: {
                "startTime": getNowDate(),
                "endTime": getNowDate(),
                "dataType": vue.dataType,
            },
            dataType: 'json',
            beforeSend: function(request) {
	            request.setRequestHeader("accessToken", accessToken);
	        },

        }, //数据的路径 "http://192.168.5.133:8081/ic-iot/admin/1/devices" /"json/device.json"
        select: { //单击tr选中当前行
            style: 'multi'
        },
        "columns": [{
            "data": "recordTimeInfo",
            "sTitle": "采集时间", //标题
            "sDefaultContent": "", //此列默认值为""，以防数据中没有此值，DataTables加载数据的时候报错
        }, {
			"data": function(obj) {
                if(obj.tem || obj.hum){
                    var tem = !obj.tem ? '- -' : obj.tem + '℃';
                    var hum = !obj.hum ? '- -' : obj.hum + '%';
                    return  tem +' '+ hum;
                }else{
                    var temCh1 = (obj.temCh1 == '' || obj.temCh1 == null) ? '- -' : obj.temCh1 + '℃';
                    var humCh1 = (obj.humCh1 == '' || obj.humCh1 == null) ? '- -' : obj.humCh1 + '%';
                    return  temCh1 +' '+ humCh1;
                }
				// var dataStr = "";
				// if(!obj.temCh1) {
				// 	if(obj.temCh1 == 0) {
				// 		dataStr += "0℃";
				// 	} else {
				// 		dataStr += "";
				// 	}
				// } else {
				// 	dataStr += obj.temCh1 + '℃ ';
				// }
				// dataStr += "  ";
				// if(!obj.humCh1) {
				// 	if(obj.humCh1 == 0) {
				// 		dataStr += "0%";
				// 	} else {
				// 		dataStr += "";
				// 	}
				// } else {
				// 	dataStr += obj.humCh1 + '% ';
				// }
				// return dataStr;
			},
			"sTitle": "通道一", //标题
			"sDefaultContent": "", //此列默认值为""，以防数据中没有此值，DataTables加载数据的时候报错
		}, {
			"data":  function(obj) {
				var dataStr = "";
				if(!obj.temCh2) {
					if(obj.temCh2 == 0) {
						dataStr += "0℃";
					} else {
						dataStr += "";
					}
				} else {
					dataStr += obj.temCh2 + '℃ ';
				}
				dataStr += "  ";
				if(!obj.humCh2) {
					if(obj.humCh2 == 0) {
						dataStr += "0%";
					} else {
						dataStr += "";
					}
				} else {
					dataStr += obj.humCh2 + '% ';
				}

				return dataStr;
			},
			"sTitle": "通道二", //标题
			"sDefaultContent": "", //此列默认值为""，以防数据中没有此值，DataTables加载数据的时候报错
		},{
			"data": function(obj) {
				if(obj.state == 0) {
					return '<u class="btn-showuser" style="color:#fad60d">' + '故障' + '</u>';
				} else if(obj.state == 1) {
					return '<u class="btn-showuser" style="color:red">' + '超限' + '</u>';
				} else if(obj.state == 3) {
					return '<u class="btn-showuser" style="color:#999">' + '离线' + '</u>';
				} else{
					return '<u class="btn-showuser" style="color:#009688">' + '正常' + '</u>';
				}
			},
			"sTitle": "数据状态", //标题
			"sDefaultContent": "", //此列默认值为""，以防数据中没有此值，DataTables加载数据的时候报错
		},{
			"data": "exDetail",
			"sTitle": "异常原因", //标题
			"sDefaultContent": "", //此列默认值为""，以防数据中没有此值，DataTables加载数据的时候报错
		}]
    });
};

function typehecked(exceptionType) {
    if (exceptionType == 5)
        exceptionType = null;
    $.ajax({
        url: url + '/ic-iot/devices/' + deviceId + '/exceptions',//117
        type: 'get',
        data: {
            "currentPage": 1,
            "pageSize": 999,
            "exceptionType": exceptionType,
        },
        dataType: 'json',
        beforeSend: function(request) {
            request.setRequestHeader("accessToken", accessToken);
        },
        success: function (data) {

            if(data['code'] == 1){
				$('#exceptionTable').dataTable().fnClearTable();
                $('#exceptionTable').dataTable().fnAddData(data.result);
			}else{
				ifajax(data);
			}
        }
    });
};

  
  //删除设备
  function deviceIds(){
  	var obj = $(this);
	    	console.log(obj);
		    layer.confirm('确认要删除吗？', {
		      icon: 0,
		      title: '警告',
		      shade: false
		    }, function(index) {
		      $.ajax({
					url : url + '/ic-iot/devices/'+deviceId,
					type : 'delete',
					dataType : 'json',
					beforeSend: function(request) {
			        request.setRequestHeader("accessToken", accessToken);
			    },
					success : function(data) {
			      if(data['code'] == 1){
							$(obj).parents("tr").remove();//删除方法
							layer.msg('已删除!', {
				        icon: 1,
				        time: 1000
				      });
						}else{
							ifajax(data);
						}
					}
				});
		      
			});
  }
	$('#deviceIds').on('click', function() {
		var obj = $(this);
	    layer.confirm('确认要删除吗？', {
	      icon: 0,
	      title: '警告',
	      shade: false
	    }, function(index) {
	      $.ajax({
				url : url + '/ic-iot/devices/'+deviceId,
				type : 'delete',
				dataType : 'json',
				beforeSend: function(request) {
		        request.setRequestHeader("accessToken", accessToken);
		    },
				success : function(data) {
			        if(data['code'] == 1){
						setTimeout(function(){
					    	window.parent.location.reload();
					    },2000);
						layer.msg('已删除!', {
					       icon: 1,
					       time: 1000
					    });
					}else{
						ifajax(data);
					}
				}
			});
	      
		});
	});
	//编辑信息
    $('#bjxx').on('click', function() {
	    layer_show('编辑信息', 'facilityCompile.html?deviceId='+deviceId, '', '650', '500');
	});
    //配置参数
    $('#pzcs').on('click', function() {
	    layer_show('配置参数', 'facilitySet.html?deviceId='+deviceId, '', '520', '500');
	});
    
$(".btn_block > label").click(function(){
	$(this).siblings().removeClass("layui-btn-block").addClass("layui-btn-none");
	$(this).addClass("layui-btn-block");
});